home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / WarpQuake / Src / dosisms.h < prev    next >
C/C++ Source or Header  |  2000-05-22  |  3KB  |  101 lines

  1. /*
  2. Copyright (C) 1996-1997 Id Software, Inc.
  3.  
  4. This program is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU General Public License
  6. as published by the Free Software Foundation; either version 2
  7. of the License, or (at your option) any later version.
  8.  
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
  12.  
  13. See the GNU General Public License for more details.
  14.  
  15. You should have received a copy of the GNU General Public License
  16. along with this program; if not, write to the Free Software
  17. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18.  
  19. */
  20.  
  21. //
  22. // dosisms.h: I'd call it dos.h, but the name's taken
  23. //
  24.  
  25. #ifndef _DOSISMS_H_
  26. #define _DOSISMS_H_
  27.  
  28. int dos_lockmem(void *addr, int size);
  29. int dos_unlockmem(void *addr, int size);
  30.  
  31. typedef union {
  32.     struct {
  33.         unsigned long edi;
  34.         unsigned long esi;
  35.         unsigned long ebp;
  36.         unsigned long res;
  37.         unsigned long ebx;
  38.         unsigned long edx;
  39.         unsigned long ecx;
  40.         unsigned long eax;
  41.     } d;
  42.     struct {
  43.         unsigned short di, di_hi;
  44.         unsigned short si, si_hi;
  45.         unsigned short bp, bp_hi;
  46.         unsigned short res, res_hi;
  47.         unsigned short bx, bx_hi;
  48.         unsigned short dx, dx_hi;
  49.         unsigned short cx, cx_hi;
  50.         unsigned short ax, ax_hi;
  51.         unsigned short flags;
  52.         unsigned short es;
  53.         unsigned short ds;
  54.         unsigned short fs;
  55.         unsigned short gs;
  56.         unsigned short ip;
  57.         unsigned short cs;
  58.         unsigned short sp;
  59.         unsigned short ss;
  60.     } x;
  61.     struct {
  62.         unsigned char edi[4];
  63.         unsigned char esi[4];
  64.         unsigned char ebp[4];
  65.         unsigned char res[4];
  66.         unsigned char bl, bh, ebx_b2, ebx_b3;
  67.         unsigned char dl, dh, edx_b2, edx_b3;
  68.         unsigned char cl, ch, ecx_b2, ecx_b3;
  69.         unsigned char al, ah, eax_b2, eax_b3;
  70.     } h;
  71. } regs_t;
  72.  
  73. unsigned int ptr2real(void *ptr);
  74. void *real2ptr(unsigned int real);
  75. void *far2ptr(unsigned int farptr);
  76. unsigned int ptr2far(void *ptr);
  77.  
  78. int    dos_inportb(int port);
  79. int    dos_inportw(int port);
  80. void dos_outportb(int port, int val);
  81. void dos_outportw(int port, int val);
  82.  
  83. void dos_irqenable(void);
  84. void dos_irqdisable(void);
  85. void dos_registerintr(int intr, void (*handler)(void));
  86. void dos_restoreintr(int intr);
  87.  
  88. int    dos_int86(int vec);
  89.  
  90. void *dos_getmemory(int size);
  91. void dos_freememory(void *ptr);
  92.  
  93. void    dos_usleep(int usecs);
  94.  
  95. int dos_getheapsize(void);
  96.  
  97. extern regs_t regs;
  98.  
  99. #endif    // _DOSISMS_H_
  100.  
  101.